<?php
/************************************
*   新浪相册 7.0
*   @file:lib_db_mysql.php
*   @intro:
*   @author:shaopu@
*   @date:Mon Nov 24 16:00:23 CST 2008
************************************/

class lib_db_mysql extends lib_db 
{
    //结果集
    private $__result;
    
    /**
	 * 连接数据库
	 *
	 * @param resource $conn
	 * @param string $host
	 * @param string $user
	 * @param string $password
	 * @param string $db
	 * @param int $port
	 * @return bool
	 */
	protected function _connect(&$conn , $host , $user , $password , $db , $port)
	{
	    $conn = mysql_connect($host.':'.$port , $user , $password);
	    
	    if(!$conn)
	    {
	        K_log::alert(K5_LOG_ALERT_DB , $host.TAB.$port.TAB.mysql_errno().TAB.mysql_error() , 'connect_err');
	        return false;
	    }
	    
	    $rs = mysql_select_db($db , $conn);
	    
	    if(!$rs)
	    {
	        K_log::alert(K5_LOG_ALERT_DB , $host.TAB.$port.TAB.$db.TAB.mysql_errno().TAB.mysql_error() , 'select_db_err');
	        return false;
	    }
	    
	    return true;
	}
	/**
	 * 检测数据库连接是否可用
	 *
	 * @param source $connect
	 * @return bool
	 */
	protected function _ping_db($connect)
	{
	    return mysql_ping($connect);
	}
	/**
	 * 执行SQL
	 *
	 * @param string $sql
	 * @return bool
	 */
	protected function _execute($sql)
	{
	    $this->__result = mysql_query($sql , $this->__conn);
	    return $this->__result === false ? false : true;
	}
	/**
	 * 取一行记录
	 *
	 * @return array
	 */
	protected function _fetch_row()
	{
	    return mysql_fetch_assoc($this->__result);
	}
	
	/**
	 * 取得写操作所影响的数据行数
	 *
	 * @return int
	 */
	protected function _affected_rows()
	{
	    return mysql_affected_rows($this->__conn);
	}
	/**
	 * 取得读操作所得到的行数
	 *
	 * @return int
	 */
	protected function _num_rows()
	{
	    return mysql_num_rows($this->__result);
	}
	/**
	 * 插入操作的主键ID
	 *
	 * @return int
	 */
	protected function _insert_id()
	{
	    return mysql_insert_id($this->__conn);
	}
	/**
	 * 释放结果集
	 *
	 */
	protected function _free_result()
	{
	    if(is_resource($this->__result))
	    {
	        mysql_free_result($this->__result);
	    }
	    return ;
	}
	
	/**
	 * 取得数据库报错信息
	 *
	 * @return string
	 */
	protected function _error()
	{
	    return mysql_error($this->__conn);
	}
    /**
     * 转译
     *
     * @param string $string
     * @return string
     */
	protected function _escape($string)
	{
	    return is_resource($this->__conn)
	           ? mysql_real_escape_string($string , $this->__conn)
	           : mysql_escape_string($string);
	}
}
?>